<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <!-- import CSS -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/element-ui/2.15.9/theme-chalk/index.css">
    <!--引入富文本编辑器样式文件-->
    <link href="https://cdn.staticfile.org/wangeditor5/5.1.23/css/style.min.css" rel="stylesheet">

    <style>
        body {
            background-color: rgb(241, 242, 243)
        }

        .el-header {
            background-color: white
        }

        #footer_center h3 {
            color: white
        }

        #footer_center p {
            margin: 0
        }

        [v-cloak] {
            display: none
        }
    </style>
</head>
<body>
<!--当Vue框架文件加载完成后会自动删除掉所有元素的v-cloak属性-->
<div id="app" v-cloak>
    <el-container>
        <my-header></my-header>
        <el-main style="width: 1200px;margin: 0 auto">

            <el-row gutter="10">
                <el-col span="4">
                    <el-card style="height: 500px">
                        <el-menu @select="handleSelect" style="border: 0" active-text-color="orange"
                        >
                            <el-menu-item index="1">个人信息</el-menu-item>
                            <el-menu-item index="2">稿件管理</el-menu-item>
                        </el-menu>
                    </el-card>
                </el-col>
                <el-col span="20">
                    <el-card>
                        <h1 style="font-size: 35px;color: orange">{{c.id==null?'发布内容页面':'修改内容页面'}}</h1>
                        <el-form label-width="80px">
                            <el-form-item label="文章标题">
                                <el-input v-model="c.title" placeholder="请输入文章标题"></el-input>
                            </el-form-item>
                            <el-form-item label="文章分类">
                                <el-radio-group :disabled="c.id!=null" v-model="c.type" @input="handleInput">
                                    <el-radio-button label="1">食谱</el-radio-button>
                                    <el-radio-button label="2">视频</el-radio-button>
                                    <el-radio-button label="3">资讯</el-radio-button>
                                </el-radio-group>
                            </el-form-item>
                            <el-form-item label="二级分类">
                                <el-select placeholder="请选择" v-model="c.categoryId">
                                    <el-option v-for="cat in categoryArr"
                                               :label="cat.name" :value="cat.id"> </el-option>
                                </el-select>
                            </el-form-item>

                            <el-form-item label="封面">
                                <img v-if="c.id!=null" :src="c.imgUrl" width="145" height="145">
                                <!--************上传组件开始*************-->
                                <el-upload style="float: left"
                                           action="/v1/upload"
                                           name="file"
                                           limit="1"
                                           list-type="picture-card"
                                           :on-preview="handlePictureCardPreview"
                                           :on-success="handleSuccess"
                                           :on-remove="handleRemove">
                                    <i class="el-icon-plus"></i>
                                </el-upload>
                                <el-dialog :visible.sync="dialogVisible">
                                    <img width="100%" :src="dialogImageUrl" alt="">
                                </el-dialog>
                                <!--************上传组件结束*************-->
                            </el-form-item>
                            <el-form-item v-show="c.type==2" label="视频">
                                <!--************上传组件开始*************-->
                                <el-upload style="float: left"
                                           action="/v1/upload"
                                           name="file"
                                           limit="1"
                                           accept="video/*"
                                           :on-preview="handlePictureCardPreview"
                                           :on-success="handleSuccess"
                                           :on-remove="handleRemove">
                                    <el-button type="primary">点击上传视频</el-button>
                                    <div>只能上传MP4文件，且不能超过100MB</div>
                                </el-upload>
                                <!--************上传组件结束*************-->
                            </el-form-item>
                            <el-form-item v-show="c.type!=2" label="文章内容">
                                <!--富文本编辑器开始-->
                                <div style="border: 1px solid #ccc">
                                    <div id="toolbar-container" style="border-bottom: 1px solid #ccc;">
                                        <!-- 工具栏 --></div>
                                    <div id="editor-container" style="height: 300px;"><!-- 编辑器 --></div>
                                </div>
                                <!--富文本编辑器结束-->
                            </el-form-item>
                            <el-form-item>
                                <el-button type="primary" @click="post()">{{c.id==null?'发布内容':'修改内容'}}</el-button>
                            </el-form-item>
                        </el-form>
                    </el-card>

                </el-col>
            </el-row>

        </el-main>
        <el-footer style="background-color: #2f3234;height: 280px;padding: 50px 0">
            <div style="width: 1200px;margin: 0 auto;text-align: center;color: #666">
                <el-row gutter="20">
                    <el-col span="8">
                        <img src="imgs/icon.png">
                        <p>教程灵感就看烘焙坊</p>
                        <p>烘焙行业网络社区平台</p>
                        <p>全国百城上千个职位等你来</p>
                    </el-col>
                    <el-col id="footer_center" span="8">
                        <el-row gutter="20">
                            <el-col span="8">
                                <h3>关于我们</h3>
                                <p>烘焙学院</p>
                                <p>烘焙食谱</p>
                                <p>分类信息</p>
                                <p>求职招聘</p>
                                <p>社区交流</p>
                            </el-col>
                            <el-col span="8">
                                <h3>服务与支持</h3>
                                <p>练习我们</p>
                                <p>广告投放</p>
                                <p>用户协议</p>
                                <p>友情链接</p>
                                <p>在线反馈</p>
                                <p>我发投稿</p>
                            </el-col>
                            <el-col span="8">
                                <h3>底部导航</h3>
                                <p>Archiver</p>
                                <p>手机版</p>
                                <p>小黑屋</p>
                            </el-col>
                        </el-row>
                    </el-col>
                    <el-col span="8">
                        <p style="font-size: 60px;margin: 0">
                            <span style="color: orange">烘焙</span>坊
                        </p>
                        <p>烘焙行业网络社区平台</p>
                    </el-col>
                </el-row>
            </div>
        </el-footer>
    </el-container>
</div>
</body>
<!-- import Vue before Element -->
<script src="https://cdn.staticfile.org/vue/2.6.14/vue.min.js"></script>
<!-- import JavaScript -->
<script src="https://cdn.staticfile.org/element-ui/2.15.9/index.min.js"></script>
<!--引入富文本编辑器框架js文件-->
<script src="https://cdn.staticfile.org/wangeditor5/5.1.23/index.min.js"></script>
<!--引入Axios框架-->
<script src="https://cdn.bootcss.com/axios/0.18.0/axios.min.js"></script>
<script src="js/header.js"></script>

<script>
    let v = new Vue({
        el: '#app',
        data: function () {
            return {
                dialogImageUrl: '',
                dialogVisible: false,
                c: {title: "", type: "1", categoryId: ""},
                categoryArr: []
            }
        },
        methods: {
            post(){
                if (v.c.type==2&&(v.c.videoUrl==''||v.c.videoUrl==null)){
                    v.$message.error("请选择视频文件!");
                    return;
                }
                if (v.c.imgUrl==""||v.c.imgUrl==null){
                    v.$message.error("请设置封面!");
                    return;
                }
                if (v.c.categoryId==""){
                    v.$message.error("请选择二级分类!");
                    return;
                }
                let user = localStorage.user?JSON.parse(localStorage.user):null;
                if (user!=null){
                    v.c.createBy=user.id;                //设置作者Id
                }
                if (v.c.type!=2){//判断不是视频
                    //设置文章内容
                    v.c.content = editor.getHtml();
                    //设置摘要 从文章内容里截取前50个字符
                    v.c.brief = editor.getText().slice(0,50);
                }

                //发请求
                axios.post("v1/contents/add-new",v.c).then(function (response) {
                    if (response.data.code==1){
                        location.href="/content-management.html";
                    }else{
                        v.$message.error(response.data.msg);
                    }
                })
            },
            handleSuccess(response,file,fileList){
                //判断当前上传成功的是图片还是视频
                if(file.raw.type.includes('image')){
                    //上传成功后把图片路径保存在表示文章的对象里面
                    v.c.imgUrl = response.data;
                }else{//视频
                    v.c.videoUrl = response.data;
                }

            },
            handleInput(){
                v.c.categoryId="";
                axios.get("/v1/categories/"+v.c.type+"/sub").then(function (response) {
                    v.categoryArr=response.data.data;
                })
            },
            handleRemove(file, fileList) {
                //判断当前删除的是图片还是视频
                if (file.raw.type.includes('imgage')){
                    v.c.imgUrl="";
                }else{//视频
                    v.c.videoUrl;
                }

                v.c.imgUrl="";
                axios.post("v1/upload/remove?url="+file.response.data).then(function (response) {
                    if (response.data.code==1){
                        v.$message.success("服务器文件删除成功!");
                    }
                })
            },
            handlePictureCardPreview(file) {
                this.dialogImageUrl = file.url;
                this.dialogVisible = true;
            },
            handleSelect(key, keyPath) {
                if (key == 1) {
                    location.href = "personal.html";
                } else {
                    location.href = "content-management.html";
                }
            }
        },
        created: function () {
            if (location.search.includes("id")){
                let id = new URLSearchParams(location.search).get("id");
                //发送请求获取数据
                axios.get("/v1/contents/"+id+"/update").then(function (response) {
                    if (response.data.code==1){
                        v.c = response.data.data;
                        //把文章内容显示到富文本编辑器中
                        editor.setHtml(v.c.content);
                    }
                })
            }

            //判断地址栏中的参数是否为含type   location.search得到地址栏中的cans
            if (location.search.includes("type")) {
                //从 ?type=2 中得到2
                let type = new URLSearchParams(location.search).get("type");
                //this代表当前创建的Vue对象的初始化还未完成所以不能访问v
                //否则报错：Cannot access 'v' before initialization
                this.c.type = type;
            }
            //请求当前类型下的二级分类
            axios.get("/v1/categories/" + this.c.type + "/sub").then(function (response) {
                if (response.data.code == 1) {
                    //此处因为是子线程发完请求服务器之后执行的代码
                    //所以此时Vue对象早就初始化完成,所以v是可以访问的
                    //请求回来之后this代码的已经不是Vue对象,所以此处不能this
                    v.categoryArr = response.data.data;
                }

            })
        }
    })

    /**********富文本编辑器相关js开始***********/
    const {createEditor, createToolbar} = window.wangEditor
    const editorConfig = {
        placeholder: '请填写详情...',
        onChange(editor) {
            const html = editor.getHtml()
            console.log('editor content', html)
        }
    }
    const editor = createEditor({
        selector: '#editor-container',
        html: '<p><br></p>',
        config: editorConfig,
        mode: 'simple',
    })
    const toolbarConfig = {}
    const toolbar = createToolbar({
        editor,
        selector: '#toolbar-container',
        config: toolbarConfig,
        mode: 'simple',
    })
    /**********富文本编辑器相关js结束***********/
</script>
</html>